package com.aliyun.flashsale.portal.model;

import lombok.Data;

/**
 * 结果
 *
 * @date 2024/05/13
 */
@Data
public class ApiResult<T> {

    /**
     * 数据
     */
    private T data;
    /**
     * 成功
     */
    private Boolean success;
    /**
     * 消息
     */
    private String message;

    /**
     * 成功
     *
     * @return {@link ApiResult }<{@link T }>
     */
    public static ApiResult<Void> success() {
        return success(null);
    }

    /**
     * 成功
     *
     * @param data 数据
     * @return {@link ApiResult }<{@link T }>
     */
    public static <T> ApiResult<T> success(T data) {
        ApiResult<T> apiResult = new ApiResult<>();
        apiResult.setData(data);
        apiResult.setSuccess(true);
        return apiResult;
    }

    /**
     * 失败
     *
     * @param message 消息
     * @return {@link ApiResult }<{@link T }>
     */
    public static <T> ApiResult<T> fail(String message) {
        ApiResult<T> apiResult = new ApiResult<>();
        apiResult.setMessage(message);
        apiResult.setSuccess(false);
        return apiResult;
    }
}